<?php namespace Home\Controller; 
use Common\Model\Category;
//主页控制器
class ListsController extends CommonController{
	//构造函数
	public function __init(){
        // 继承父级
        parent::__init();
	}
	public function index(){
        // 获取tid  cid
        $cid=Q('get.cid',0);
        $tid=Q('get.tid',0);
        // 获取数据库信息
            // 如果传进来的是分类
        if($cid){
            // 获取所有子分类  cids
            $cateModel=new Category;
            $cids=$cateModel->getSon(Db::table('category')->get(),$cid);
            $cids[]=$cid;

            // 获得父级分类
            $pid=Db::table('category')->where('cid',$cid)->pluck('pid');
            $type=$this->getFather(Db::table('category')->get(),$pid);
            // 添加自己
            $type[]=Db::table('category')->where('cid',$cid)->pluck('cname');
            // 变成字符串
            $type=implode('>',$type);
            
                // 标题栏数组
            $headData=array(
                'tyname'=>$type,
                'tynum'=>Db::table('article')->where("category_cid IN (".implode(',',$cids).") AND is_recycle=1")->count(),
                'type'=>"分类名",
                );

            // 主页面数组  文章具体简介  文章表 标签表
            $data=Db::table('article')->join('category','category_cid','=','cid')->where("category_cid IN (".implode(',',$cids).") AND is_recycle=1")->orderBy('click','DESC')->get();
            // 获得标签表
            foreach ($data as $k => $v) {
                $data[$k]['tag']=Db::table('article_tag')->join('tag','tag_tid','=','tid')->join('article','article_aid','=','aid')->where('aid',$v['aid'])->lists('tid,tname');
            }
        }



            // 如果传进来的是标签
        if($tid){
            // 标题栏数组
            $headData=array(
                'tyname'=>Db::table('tag')->where('tid',$tid)->pluck('tname'),
                'tynum'=>Db::table('article')->join('article_tag','article_aid','=','aid')->where("tag_tid={$tid} AND is_recycle=1")->count(),
                'type'=>'标签名'
                );


            // 主页面数组 文章具体简介 文章表 标签表
            $data=Db::table('article')->join('article_tag','article_aid','=','aid')->join('Category','category_cid','=','cid')->where("tag_tid={$tid} AND is_recycle=1")->orderBy('click','DESC')->get();
            // 压入标签
            foreach ($data as $k => $v) {
                $data[$k]['tag']=Db::table('article_tag')->join('tag','tag_tid','=','tid')->lists('tid,tname');
            }
        }
        // 分配数据
        View::with('headData',$headData);
        View::with('data',$data);
        // 引入模板
        View::make();
    }
   
    private function getFather($data,$pid){
        // 声明数组  防止报错
        $temp=array();
        // 循环添加数组元素
        foreach ($data as $v) {
            // 判断子集
            if($pid==$v['cid']){
                // 压入数组
                $temp[]=$v['cname'];
                // 合并数组
                $temp=array_merge($this->getFather($data, $v['pid']),$temp);
            }
        }
        // 返回数组
        return $temp;
    }
}
